//
//  BZThemeManager.h
//  MZBasic
//
//  Created by Sings on 2022/8/10.
//

#import <Foundation/Foundation.h>
#import "BZThemeMacor.h"
#import "BZThemeExampleProtocol.h"

NS_ASSUME_NONNULL_BEGIN

__BEGIN_DECLS

OBJC_EXPORT
void BZThemeBlock(id target,BZThemeBindBlock block);

OBJC_EXPORT
NSString* BZThemeKeyToStr(NSString *key);

OBJC_EXPORT
NSString* BZThemeFilePath(void);

__END_DECLS

@interface BZThemeManager : NSObject

+ (instancetype) sharedInstance;

- (void) config;

- (void) bindColorWithTarget:(id) target KeyPath:(NSString *) keyPath ToKey:(NSString *) key;

- (void) bindColorWithTarget:(id) target KeyPath:(NSString *) keyPath ToColorPath:(NSString *) colorPath;

- (void) bindCGColorWithTarget:(id) target KeyPath:(NSString *) keyPath ToKey:(NSString *) key;

- (void) bindCGColorWithTarget:(id) target KeyPath:(NSString *) keyPath ToColorPath:(NSString *) colorPath;

- (void) bindImageWithTarget:(id) target KeyPath:(NSString *) keyPath ToKey:(NSString *) key;

- (void) bindBlockWithTarget:(id) target Block:(BZThemeBindBlock) block;

- (void) bindSelWithTarget:(id) target Sel:(SEL) sel;

- (void) switchTheme:(id<BZThemeExampleProtocol>) theme Finished:(void (^) (BOOL isSuccess, NSString *strError)) finished;

@end

NS_ASSUME_NONNULL_END
